

#include "user_key.h"
#include "user_led.h"


//==============================================================================
//                            * 单个按键配置 *
//==============================================================================
/**
**功    能：按键初始化（寄存器、IO口等）
*/
void UserKeySetInit(void)														// keyopen
{    
    P1INP |= BV(2);
    P1DIR &= ~BV(2);
    P1_2 = 1;
    PICTL |= BV(1);																// Rising edge interrupt
    P1IEN |= BV(2);
    P1IFG &= ~BV(2);
    IRCON2 &= ~BV(3);
    IEN2 |= BV(4);
}
/**
**功    能：按键按下后循环处理（识别短按、长按）
*/
void UserKeySetPrcoss(void)
{
	uint8  f_exit = 0;
	static uint16 key_cont = 0, nokey_cont = 0;
	
	if (!P1_2)
	{
		if (key_cont < 1000) key_cont++;
		if (key_cont == 999)
		{
			
		}
		if (key_cont == 300)													// long enter
		{            
			UserLedSetContorl(100, 100, 50);
		}
		nokey_cont = 0;
	}
	else
	{
		if (nokey_cont < 1000) nokey_cont++;
		else f_exit = 1;														// no long enter  then exit
		if (nokey_cont == 200)													// long no enter
		{
			key_cont = 0;
		}
		if (key_cont == 1000)
		{
			
		}
		if ((key_cont > 300) && (key_cont <= 1000))
		{
			UserLedSetContorl(50, 450, 20);
			UserBluetoothKeyAction(BTK_Action_Register);
		}
		key_cont = 0;
	}

	if (f_exit)																	// exit key process
	{
		P1IFG &= ~BV(2);
		IRCON2 &= ~BV(3);
		IEN2 |= BV(4);
	}
	else
	{
		osal_start_timerEx(Hal_TaskID, USER_KEYSET_EVENT, 10);
	}
}

